Dashboard

Row

confirmed

135586 (+2.3)

active

94067 (+0.9%)

recovered

24,392 (+6.8%)

death

17127 (+3.7%)

Row

Mappa contagi

Cronologia contagi

---
title: "Covid-19 Italy"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    social: menu
    source_code: embed
---

```{r}
#knitr::opts_chunk$set(echo = FALSE, eval = FALSE)
```


```{r setup, include=FALSE}
library(flexdashboard)
```



```{r global, include=FALSE}
library(highcharter)
library(gtrendsR)
library(lubridate)
library(ggplot2)
library(dplyr)
library(stringr)
library(viridisLite)
library(forecast)
library(DT)
library(magrittr)
library(dygraphs)
library(viridis)
library(plotly)
library(xts)
```


```{r}
thm <- 
  hc_theme(
    colors = c("#1a6ecc", "#434348", "#90ed7d"),
    chart = list(
      backgroundColor = "transparent",
      style = list(fontFamily = "Source Sans Pro")),
    xAxis = list( gridLineWidth = 1)
  )

confirmed_color <- "purple"
active_color <- "#1f77b4"
recovered_color <- "forestgreen"
death_color <- "red"
```


```{r}
covid_italy <- read.csv("https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni.csv")

covid_italy_sum <- read.csv("https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-andamento-nazionale/dpc-covid19-ita-andamento-nazionale.csv")

covid_itpro <- read.csv("https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province.csv")

```

```{r}
covid_italy %<>%
   mutate(data = date(data)) %>%
   mutate(regione = as.character(denominazione_regione)) %>%
   select(-denominazione_regione,
          -stato,
          -codice_regione,
          -lat,
          -long,
          -note_it,
          -note_en) %>%
   mutate(regione = ifelse(.$regione == "Trento","Trentino-Alto Adige",.$regione))%>%
  mutate( regione = ifelse(.$regione == "Bolzano","Trentino-Alto Adige",.$regione)) %>%
  group_by(regione,data) %>%
  summarize_all(~sum(.)) %>%
  ungroup(regione) %>%
  arrange(desc(data),desc(totale_casi)) 
```

```{r}
covid_italy_sum %<>%
   mutate(data = date(data)) 
```

```{r}
covid_itpro  %<>%
   mutate (data=ymd_hms(data))%>%
   mutate(data = date(data)) 
```



```{r}
today <- max(covid_italy$data)

covid_italy_map <- 
  covid_italy %>%
  filter(data == today) %>%
  select("regione","totale_positivi")
```


```{r}
map_ita <- readRDS("map_ita_json.RDS")

region_list <- c("Piemonte","Valle d'Aosta","Lombardia",
                 "Trentino-Alto Adige","Veneto",
                 "Friuli Venezia Giulia","Liguria","Emilia Romagna",
                 "Toscana","Umbria","Marche","Lazio",
                 "Abruzzo","Molise","Campania","Puglia","Basilicata",
                 "Calabria","Sicilia","Sardegna")

for(i in 1:20){
  map_ita[["features"]][[i]][["properties"]][["name"]] <- region_list[i]
#  cat(map_ita[["features"]][[i]][["properties"]][["name"]],"\n")
}


```


Dashboard
=======================================================================

Row {data-height=200}
-------------------------------------

### confirmed {.value-box}

```{r}
tot <- covid_italy_sum %>%
  filter(data == today) %>%
  select(totale_casi ) %>%
  pull
  
tot_1 <- covid_italy_sum %>%
  filter(data == today-1) %>%
  select(totale_casi ) %>%
  pull

  
valueBox(value = paste(tot, "", " (+",
                       round(100 * (tot-tot_1)/tot_1 , 1), 
                       ")",
                       sep = ""), 
         
         caption = "Casi Totali", 
         icon = "fas fa-user-md", 
         color = confirmed_color)
```

### active {.value-box}

```{r}
pos <- 
  covid_italy_sum %>%
  filter(data == today) %>%
  select(totale_positivi) %>%
  pull
  
pos_1 <- 
  covid_italy_sum %>%
  filter(data == today -1) %>%
  select(totale_positivi) %>%
  pull


valueBox(value = paste(as.character(pos), " (+", 
                       round(100 * (pos-pos_1)/pos_1 , 1), 
                       "%)", sep = ""), 
         caption = "Attualmente Positivi", icon = "fas fa-ambulance", 
         color = active_color)
```


### recovered {.value-box}

```{r}
rec <- 
  covid_italy_sum %>%
  filter(data == today) %>%
  select(dimessi_guariti ) %>%
  pull

rec_1 <-
  covid_italy_sum %>%
  filter(data == today -1) %>%
  select(dimessi_guariti ) %>%
  pull


valueBox(value = paste(format(rec, big.mark = ","), " (+",
                       round(100 * (rec-rec_1) / rec_1, 1), 
                       "%)", sep = ""), 
         caption = "Guariti", icon = "fas fa-heartbeat", 
         color = recovered_color)
```

### death {.value-box}

```{r}
death <- 
  covid_italy_sum %>%
  filter(data == today) %>%
  select(deceduti) %>%
  pull
  
death_1 <- 
  covid_italy_sum %>%
  filter(data == today -1) %>%
  select(deceduti) %>%
  pull


  
valueBox(value = paste(death, " (+",
                       round(100 * (death-death_1) / death_1, 1), 
                       "%)", sep = ""),
         caption = "Deceduti", 
         icon = "fas fa-heart-broken", 
         color = death_color)
```


Row {data-height=1000}
-----------------------------------------------------------------------

### Mappa contagi  {data-width=500}

```{r}

n <- 4
stops <- data.frame(q = 0:n/n,
                    c = substring(viridis(n + 1), 0, 7)[(n+1):1],
                    stringsAsFactors = FALSE)
stops <- list_parse2(stops)



highchart(type = "map") %>% 
  hc_add_series_map(map = map_ita, 
                    df = covid_italy_map, 
                    joinBy = c("name","regione"), 
                    value = "totale_positivi",
                    name="Totale Positivi") %>%
hc_colorAxis(stops= stops,min=min(covid_italy_map$totale_positivi)) %>%
hc_legend(valueDecimals = 0, valueSuffix = "%") %>%
  hc_mapNavigation(enabled = TRUE) %>%
  hc_add_theme(thm)

```


### Cronologia contagi {data-width=700}

```{r}


positivi <- xts(covid_italy_sum$totale_positivi, covid_italy_sum$data)

deceduti <- xts(covid_italy_sum$deceduti, covid_italy_sum$data)

dimessi <- xts(covid_italy_sum$dimessi_guariti, covid_italy_sum$data)

totali <- xts(covid_italy_sum$totale_casi,covid_italy_sum$data)

covid_italy_time <- merge.xts(totali,positivi,dimessi,deceduti)
```


```{r,eval=F}
dygraph(covid_italy_time) %>%
  dyRangeSelector() 
```


```{r}
# https://github.com/openpolis/geojson-italy/blob/master/geojson/limits_IT_provinces.geojson
```


```{r}
library(viridis)
library(leaflet)
library(tmap)
geo_italy <- geojsonio::geojson_read("limits_IT_provinces.geojson", what = "sp")
pal <- colorNumeric("viridis", NULL)

geo_italy$prov_name <- as.character(geo_italy$prov_name)

geo_italy$prov_name <- ifelse(geo_italy$prov_name == "Valle d'Aosta/Vallée d'Aoste","Aosta",geo_italy$prov_name )

geo_italy$prov_name <- ifelse(geo_italy$prov_name == "Bolzano/Bozen","Bolzano",geo_italy$prov_name )

geo_italy$prov_name <- ifelse(geo_italy$prov_name == "Massa-Carrara","Massa Carrara",geo_italy$prov_name )

today <- max(covid_itpro$data)

covid_itpro %<>%
  filter(denominazione_provincia != "In fase di definizione/aggiornamento") %>%
  filter(data == today) 
  
  
covid_province <- 
  sp::merge(geo_italy,covid_itpro,by.x="prov_name", by.y="denominazione_provincia")

# https://geocompr.robinlovelace.net/



#geo_italy$prov_name
```

```{r}
#covid_itpro$denominazione_provincia
```




```{r}
breaks = c(0, 25, 50, 250,500, 1000) 
map_ita = tm_shape(covid_province) + 
  tm_polygons(col="totale_casi",breaks=breaks,
              popup.vars=c("totale casi:"="totale_casi"))

tmap_leaflet(map_ita) 

```